"""
对于任意大于 1 的自然数 n，若该数为偶数则将其变为原来的一半，
若为奇数则将其变为 3n+1。反复进行上述过程，直到结果为 1 时停止。
这就是著名的“3n+1”问题。
输入n，输出按“3n+1”规则变换到 1 所需要的数字变换次数。（n<=10^9）
"""


def collatz(num):
    lst = [num]
    while num != 1:
        if num % 2 == 1:
            num = 3 * num + 1
            lst.append(int(num))
        else:
            num = num / 2
            lst.append(int(num))
    return lst, len(lst) - 1


# 测试
print(collatz(7))

